<?php
/**
 * Created by PhpStorm.
 * User: mr.hao
 * Date: 2018/8/10
 * Time: 0:35
 */

namespace App\services;

use Houdunwang\WeChat\WeChat;
use Modules\Wx\Entities\WxConfig;
use Modules\Wx\Entities\WxKeyword;
use Modules\Wx\Entities\WxRole;

class Wechatservice
{

    public function __construct()
    {
        //获取wechat.php配置文件的内容
        $config = include base_path('config') . '/wechat.php';
        //获取数据库中的微信配置数据
        $wxconfig = WxConfig::pluck('value','name')->toArray();
        //将2个数组合并
        $config = array_merge($config,$wxconfig);
        WeChat::config($config)->valid();
    }

//    定义一个方法，返回一个视图，谁想调用加载这个视图调用这个方法就行
    public function keyshitu($id=0){
//        return view()
//        记住你返回的视图是关键词视图，他是公共模板，你在添加关键词的时候是没有id的
//        也就是主键为0
//        获取编辑的时候的规则和关键词数据,规则表对关键词是一对多关系
        $rule = WxRole::findOrNew($id);
//        dd($rule->toArray());
        return view('wx::keywords.keyword',compact('rule'));
    }
    public function __call($name, $arguments)
    {
        return call_user_func_array([WeChat::class,$name],$arguments);
    }

//    微信服务类里边进行编辑添加合并
    public function saverule($id=0){
        $post = json_decode(request()->input('rule'),true);
//        dd($post);
//        dd($request->all());

//        开始一个事物
        \DB::beginTransaction();
//        存规则表
        $rule = WxRole::findOrNew($id);
        $rule->name=$post['name'];
        $rule->module=\HDModule::currentModule();
        $rule->save();
//        存关键词表
        WxKeyword::where('role_id',$rule['id'])->delete();
        foreach ($post['keywords'] as $v){
            WxKeyword::create([
               'key'=>$v['key'],
               'role_id'=>$rule['id']
            ]);
        }
        \DB::commit();
        return $rule;
    }



}